/**
 * 顺序递增分组 AscendingGroups
 */
export const TWO_ASCENDING_GROUPS = [
  [1, 2], // 2个号码
  [3, 4], // 2个号码
  [5, 6], // 2个号码
  [7, 8], // 2个号码
  [9, 10], // 2个号码
  [11, 12], // 2个号码
  [13, 14], // 2个号码
  [15, 16], // 2个号码
  [17, 18], // 2个号码
  [19, 20], // 2个号码
  [21, 22], // 2个号码
  [23, 24], // 2个号码
  [25], // 固定号码
  [26, 27], // 2个号码
  [28, 29], // 2个号码
  [30, 31], // 2个号码
  [32, 33], // 2个号码
  [34, 35], // 2个号码
  [36, 37], // 2个号码
  [38, 39], // 2个号码
  [40, 41], // 2个号码
  [42, 43], // 2个号码
  [44, 45], // 2个号码
  [46, 47], // 2个号码
  [48, 49] // 2个号码
]

/**
 * 奇偶交替分组 OddEvenAlternateGroups
 */
export const TWO_ODD_EVEN_GROUPS = [
  [1, 3], // 奇数
  [2, 4], // 偶数
  [5, 7], // 奇数
  [6, 8], // 偶数
  [9, 11], // 奇数
  [10, 12], // 偶数
  [13, 15], // 奇数
  [14, 16], // 偶数
  [17, 19], // 奇数
  [18, 20], // 偶数
  [21, 23], // 奇数
  [22, 24], // 偶数
  [25], // 固定号码
  [26, 28], // 偶数
  [27, 29], // 奇数
  [30, 32], // 偶数
  [31, 33], // 奇数
  [34, 36], // 偶数
  [35, 37], // 奇数
  [38, 40], // 偶数
  [39, 41], // 奇数
  [42, 44], // 偶数
  [43, 45], // 奇数
  [46, 48], // 偶数
  [47, 49] // 奇数
]

/**
 * 质数和合数分组 PrimeCompositeGroups
 */
export const TWO_PRIME_GROUPS = [
  [2, 3], // 质数
  [5, 7], // 质数
  [11, 13], // 质数
  [17, 19], // 质数
  [23, 29], // 质数
  [31, 37], // 质数
  [41, 43], // 质数
  [47, 1], // 质数 和 1
  [4, 6], // 合数
  [8, 9], // 合数
  [10, 12], // 合数
  [14, 15], // 合数
  [25], // 固定号码
  [16, 18], // 合数
  [20, 21], // 合数
  [22, 24], // 合数
  [26, 27], // 合数
  [28, 30], // 合数
  [32, 33], // 合数
  [34, 35], // 合数
  [36, 38], // 合数
  [39, 40], // 合数
  [42, 44], // 合数
  [45, 46], // 合数
  [48, 49] // 合数
]

/**
 * 尾数对称分组 MirrorTailGroups
 */
export const TWO_MIRROR_GROUPS = [
  [1, 49], // 尾数1和9镜像
  [2, 48], // 尾数2和8镜像
  [3, 47], // 尾数3和7镜像
  [4, 46], // 尾数4和6镜像
  [5, 45], // 尾数5
  [6, 44], // 尾数4和6镜像
  [7, 43], // 尾数3和7镜像
  [8, 42], // 尾数2和8镜像
  [9, 41], // 尾数1和9镜像
  [10, 40], // 尾数0
  [11, 39], // 尾数1和9镜像
  [12, 38], // 尾数2和8镜像
  [25], // 固定号码
  [13, 37], // 尾数3和7镜像
  [14, 36], // 尾数4和6镜像
  [15, 35], // 尾数5
  [16, 34], // 尾数4和6镜像
  [17, 33], // 尾数3和7镜像
  [18, 32], // 尾数2和8镜像
  [19, 31], // 尾数1和9镜像
  [20, 30], // 尾数0
  [21, 29], // 尾数1和9镜像
  [22, 28], // 尾数2和8镜像
  [23, 27], // 尾数3和7镜像
  [24, 26] // 尾数4和6镜像
]

/**
 * 除以3余数分组  ModuloThreeGroups
 */
export const TWO_MODULO_THREE_GROUPS = [
  [1, 4],
  [2, 5],
  [3, 6],
  [7, 10],
  [8, 11],
  [9, 12],
  [13, 16],
  [14, 17],
  [15, 18],
  [19, 22],
  [20, 23],
  [21, 24],
  [25], // 固定组
  [26, 29],
  [27, 30],
  [28, 31],
  [32, 35],
  [33, 36],
  [34, 37],
  [38, 41],
  [39, 42],
  [40, 43],
  [44, 47],
  [45, 48],
  [46, 49]
]

/**
 * 斐波那契数分组 FibonacciGroups
 * 黄金比例分组
 */
export const TWO_FIBONACCI_GROUPS = [
  [1, 2],
  [3, 5],
  [8, 13],
  [21, 34],
  [4, 6],
  [7, 9],
  [10, 11],
  [12, 14],
  [15, 17],
  [16, 18],
  [19, 22],
  [20, 23],
  [25], // 固定组
  [24, 26],
  [27, 29],
  [28, 30],
  [31, 33],
  [32, 35],
  [36, 37],
  [38, 40],
  [39, 41],
  [42, 44],
  [43, 46],
  [45, 47],
  [48, 49]
]

/**
 * 对角线分组 DiagonalGroups
 */
export const TWO_DIAGONAL_GROUPS = [
  [1, 49],
  [2, 42],
  [3, 35],
  [4, 28],
  [5, 21],
  [6, 14],
  [7, 15],
  [8, 16],
  [9, 17],
  [10, 18],
  [11, 19],
  [12, 20],
  [13, 22],
  [24, 30],
  [25], // 固定组
  [23, 31],
  [26, 38],
  [27, 39],
  [29, 37],
  [32, 36],
  [33, 34],
  [40, 43],
  [41, 44],
  [45, 47],
  [46, 48]
]

/**
 * 黄金分割 goldenGroups
 */
export const TWO_GOLDEN_GROUPS = [
  [1, 2],
  [3, 5],
  [8, 13],
  [21, 34],
  [4, 6],
  [7, 10],
  [9, 11],
  [12, 15],
  [14, 17],
  [16, 19],
  [18, 22],
  [20, 24],
  [25], // 固定组
  [23, 27],
  [26, 30],
  [28, 32],
  [29, 35],
  [31, 36],
  [33, 37],
  [38, 39],
  [40, 41],
  [42, 44],
  [43, 46],
  [45, 47],
  [48, 49]
]

/**
 * 隔数跳跃分组 SkipGroups
 */
export const TWO_SKIP_GROUPS = [
  [1, 5],
  [2, 6],
  [3, 7],
  [4, 8],
  [9, 13],
  [10, 14],
  [11, 15],
  [12, 16],
  [17, 21],
  [18, 22],
  [19, 23],
  [20, 24],
  [25], // 固定组
  [26, 30],
  [27, 31],
  [28, 32],
  [29, 33],
  [34, 38],
  [35, 39],
  [36, 40],
  [37, 41],
  [42, 46],
  [43, 47],
  [44, 48],
  [45, 49]
]

export const TWO_GROUP_MAP = {
  TWO_ASCENDING_GROUPS,
  TWO_ODD_EVEN_GROUPS,
  TWO_PRIME_GROUPS,
  TWO_MIRROR_GROUPS,
  TWO_MODULO_THREE_GROUPS,
  TWO_FIBONACCI_GROUPS,
  TWO_DIAGONAL_GROUPS,
  TWO_GOLDEN_GROUPS,
  TWO_SKIP_GROUPS
}
